commonlibsse_ng\re\e/
ExtraEncounterZone.rs1use crate::re::BGSEncounterZone::BGSEncounterZone;
2use crate::re::BSExtraData::{BSExtraData, DerivedBSExtraData};
3use crate::re::ExtraDataType::ExtraDataType;
4use crate::re::offsets_rtti::RTTI_ExtraEncounterZone;
5use crate::re::offsets_vtable::VTABLE_ExtraEncounterZone;
6use crate::rel::id::VariantID;
7
8#[repr(C)]
17pub struct ExtraEncounterZone {
18 pub __base: BSExtraData,
20
21 pub zone: *mut BGSEncounterZone,
24}
25
26const _: () = {
27 assert!(core::mem::offset_of!(ExtraEncounterZone, __base) == 0x0);
28 assert!(core::mem::offset_of!(ExtraEncounterZone, zone) == 0x10);
29 assert!(core::mem::size_of::<ExtraEncounterZone>() == 0x18);
30};
31
32impl Default for ExtraEncounterZone {
33 #[inline]
34 fn default() -> Self {
35 Self::new()
36 }
37}
38
39impl DerivedBSExtraData for ExtraEncounterZone {
40 #[inline]
41 fn get_extra_data(&self) -> &BSExtraData {
42 &self.__base
43 }
44
45 #[inline]
46 fn get_extra_data_type() -> ExtraDataType {
47 Self::EXTRA_DATA_TYPE
48 }
49}
50
51impl ExtraEncounterZone {
52 pub const RTTI: VariantID = RTTI_ExtraEncounterZone;
54
55 pub const VTABLE: [VariantID; 1] = VTABLE_ExtraEncounterZone;
57
58 pub const EXTRA_DATA_TYPE: ExtraDataType = ExtraDataType::EncounterZone;
60
61 #[inline]
63 pub const fn new() -> Self {
64 Self { __base: BSExtraData::new(), zone: std::ptr::null_mut() }
65 }
66
67 #[inline]
69 pub const fn from_zone(zone: *mut BGSEncounterZone) -> Self {
70 Self { __base: BSExtraData::new(), zone }
71 }
72
73 #[inline]
75 pub const fn get_type(&self) -> ExtraDataType {
76 ExtraDataType::EncounterZone
77 }
78
79 #[inline]
81 pub fn is_not_equal(&self, rhs: &Self) -> bool {
82 self.zone != rhs.zone
83 }
84}
85
86#[repr(C)]
90pub struct ExtraEncounterZoneVtbl {
91 pub CxxDrop: fn(this: &mut ExtraEncounterZone),
93
94 pub GetType: fn(this: &ExtraEncounterZone) -> ExtraDataType,
96
97 pub IsNotEqual: fn(this: &ExtraEncounterZone, rhs: &ExtraEncounterZone) -> bool,
99}
100
101impl Default for ExtraEncounterZoneVtbl {
102 #[inline]
103 fn default() -> Self {
104 Self::new()
105 }
106}
107
108impl ExtraEncounterZoneVtbl {
109 pub const fn new() -> Self {
111 const fn CxxDrop(_this: &mut ExtraEncounterZone) {}
112
113 const fn GetType(_this: &ExtraEncounterZone) -> ExtraDataType {
114 ExtraEncounterZone::EXTRA_DATA_TYPE
115 }
116
117 fn IsNotEqual(this: &ExtraEncounterZone, rhs: &ExtraEncounterZone) -> bool {
118 this.zone != rhs.zone
119 }
120
121 Self { CxxDrop, GetType, IsNotEqual }
122 }
123}